package com.algorith.server;

/**
 * 如果你需要生成对外部类的对象引用，可以使用外部类名字后面紧跟.this,这样产生的引用自动地具有正确的类型，这一点在编译其就被知晓并受到检查。因此没有任何运行时开销。下面的示例展示了如何使用.this
 * */

public class DoThis {
    void f(){
        System.out.println("DotThis.f()");
    }

    public class Inner{
        public DoThis outer(){
            return DoThis.this;
            // A plain "this" would be Inners' "this"
        }
    }

    public Inner inner(){
        return new Inner();
    }

    public static void main(String [] args){
        DoThis dt = new DoThis();
        DoThis.Inner dti = dt.inner();
        dti.outer().f();
    }
}
